package com.nebula.service;

import com.nebula.common.DataGridFooter;
import com.nebula.common.PageResult;
import com.nebula.entity.Salary;
import com.nebula.vo.SalaryAnalyzeDGVo;
import com.nebula.vo.SalaryVo;

/**
 * @author CcccX
 * @create 2019-01-21 14:23
 */
public interface ISalaryService {
    /**
     * 检查权限
     *
     * @param roleId 角色ID
     * @param navId  菜单ID
     * @return boolean
     */
    boolean checkNavRole(Integer roleId, String navId);

    /**
     * 分页查询工资列表
     *
     * @param id   用户id
     * @param page 当前页
     * @param size 每页显示条数
     * @param isHistory 是否历史数据
     * @param year 年份
     * @return PageResult
     */
    PageResult<SalaryVo> findByUserIdAndPage(String id, int page, int size, boolean isHistory, int... year);

    /**
     * 合计工资
     *
     * @param id   用户id
     * @param isHistory 是否历史数据
     * @return PageResult
     */
    DataGridFooter findTotalSalary(String id, boolean isHistory, Object... condition);

    SalaryVo findByID(String id);

    /**
     * 保存
     * @param salaryCls 实体
     */
    void save(Salary salaryCls);

    void update(Salary salaryCls);

    void delete(int id);

    PageResult<SalaryAnalyzeDGVo> findSalaryAnalyzeByUserIdAndPage(String id, int page, int size);
}
